lexer grammar stubcodegrammar;
options {
  language=Java;

}
@members {
	int currentIndentation = 0;
}
@header {
package de.ghost23.stubcodegenerator.recognize;
}

T21 : 'c' ;
T22 : 'i' ;
T23 : 't' ;

// $ANTLR src "F:\visual_studio_2008\StubCodeGenerator\grammar\stubcodegrammar.g" 105
BLANKLINE
	:	NEWLINE TAB* NEWLINE {skip();};

// $ANTLR src "F:\visual_studio_2008\StubCodeGenerator\grammar\stubcodegrammar.g" 108
CHANGE_INDENT
@init {
    int tb = 0;
}
	:	(NEWLINE|BLANKLINE) (TAB {tb++;})* {
			if(tb > currentIndentation) {
				emit(new CommonToken(INDENT));
			}else if(tb < currentIndentation) {
				for(int i = 0; i < currentIndentation - tb; i++) {
					emit(new CommonToken(DEDENT));
				}
			}else {
				skip();
			}
			currentIndentation = tb;
		};

// $ANTLR src "F:\visual_studio_2008\StubCodeGenerator\grammar\stubcodegrammar.g" 125
ID	:	(	DIGIT
		|	LETTER
		|	UNDERSCORE
		|	DASH
		)+
	;
	
// $ANTLR src "F:\visual_studio_2008\StubCodeGenerator\grammar\stubcodegrammar.g" 132
STRING
	:	'"' ('\\'|~('\\'|'\n'|'"'))* '"';

// $ANTLR src "F:\visual_studio_2008\StubCodeGenerator\grammar\stubcodegrammar.g" 135
DOLLAR	:	'$';
// $ANTLR src "F:\visual_studio_2008\StubCodeGenerator\grammar\stubcodegrammar.g" 136
fragment
UNDERSCORE:	'_';
// $ANTLR src "F:\visual_studio_2008\StubCodeGenerator\grammar\stubcodegrammar.g" 138
fragment
DASH	:	'-';
// $ANTLR src "F:\visual_studio_2008\StubCodeGenerator\grammar\stubcodegrammar.g" 140
SLASH	:	'/';
// $ANTLR src "F:\visual_studio_2008\StubCodeGenerator\grammar\stubcodegrammar.g" 141
QUOTE	:	'"';
// $ANTLR src "F:\visual_studio_2008\StubCodeGenerator\grammar\stubcodegrammar.g" 142
EQUALS	:	'=';

// $ANTLR src "F:\visual_studio_2008\StubCodeGenerator\grammar\stubcodegrammar.g" 144
fragment
LETTER	:	('a'..'z')|('A'..'Z');
// $ANTLR src "F:\visual_studio_2008\StubCodeGenerator\grammar\stubcodegrammar.g" 146
fragment
DIGIT	:	('0'..'9')+;

// $ANTLR src "F:\visual_studio_2008\StubCodeGenerator\grammar\stubcodegrammar.g" 149
fragment
TAB		:	'\t';

// $ANTLR src "F:\visual_studio_2008\StubCodeGenerator\grammar\stubcodegrammar.g" 152
fragment
NEWLINE	:	'\r'? '\n';

// $ANTLR src "F:\visual_studio_2008\StubCodeGenerator\grammar\stubcodegrammar.g" 155
WS	:	' '+ {$channel=HIDDEN;};
